using System;
using Gtk;

using PEditorMulti;

public partial class MainWindow : Gtk.Window
{
	public MainWindow () : base(Gtk.WindowType.Toplevel)
	{
		Build ();
	}

	int nomb=1;
	
	protected void guardarActionActivated (object sender, System.EventArgs e)//guardar
	{
		MiTextView mitextview = (MiTextView)notebook.CurrentPageWidget; 
		if(mitextview.Nombree==null)
		{
			guardarpestaña();
		}
		else
		{
			guardarpestaña(mitextview.Nombree);			
		}
	}
	
	protected void OnSaveAsActionActivated (object sender, System.EventArgs e)//guardar como
	{
		
		if(notebook.CurrentPage != -1)
			guardarpestaña();
	}
	
	protected virtual void OnNewActionActivated (object sender, System.EventArgs e)//añadir pagina
	{
		pestañanueva("sin título"+nomb);
		notebook.NextPage();
		nomb++;
	}
	
	protected void OnDeleteActionActivated (object sender, System.EventArgs e)//borrar pagina
	{	
		MiTextView mitextview= (MiTextView)notebook.CurrentPageWidget;
		if(mitextview.Textlleno)
		{
			if(mitextview.Nombree==null)
			{
				MessageDialog MD = new MessageDialog(this, DialogFlags.Modal,MessageType.Question,ButtonsType.YesNo,"Desea Guardar");
				if(MD.Run()== (int)ResponseType.Yes)
				{
					saveAction.Activate();
				}
				MD.Destroy();
			}
			else
			{
				if(mitextview.Guardado!=mitextview.Texto)
				{
					MessageDialog MD = new MessageDialog(this, DialogFlags.Modal,MessageType.Question,ButtonsType.YesNo,"Desea Guardar");
					if(MD.Run()== (int)ResponseType.Yes)
					{
						saveAction.Activate();
					}
					MD.Destroy();
				}
				
			}
		
		}
		borrarpestaña();
	}
	
	protected void OnOpenActionActivated (object sender, System.EventArgs e)//Abrir
	{
		pestañanueva();
	}
	
	
	public void guardarpestaña()//guardar como
	{
		MiTextView mitextview = (MiTextView)notebook.CurrentPageWidget;
		FileChooserDialog FCD= new FileChooserDialog("Guardar Como",this,FileChooserAction.Save,"Cancel",ResponseType.Cancel,"Guardar",ResponseType.Accept);
		Label label =(Label)notebook.GetTabLabel(notebook.CurrentPageWidget);
		FCD.CurrentName= label.LabelProp;
		if (FCD.Run() == (int)ResponseType.Accept)
		{
			mitextview.Nombree=FCD.Filename;
			mitextview.Guardar ();
			//cambiar label
			label = (Label)notebook.GetTabLabel(notebook.CurrentPageWidget);
			label.LabelProp = nombrearchivo(FCD.Filename);	
		}
		FCD.Destroy();
		
	}
		public void guardarpestaña(string ruta)//guardar
	{
		MiTextView mitextview = (MiTextView)notebook.CurrentPageWidget;
		mitextview.Nombree=ruta;
		mitextview.Guardar();
		//cambio de label
		Label label = (Label)notebook.GetTabLabel(notebook.CurrentPageWidget);
		label.LabelProp = nombrearchivo(ruta);		
	}
	
	public void pestañanueva(string nom)//nuevo
	{
		MiTextView textView = new MiTextView();
		textView.Visible = true;
		notebook.AppendPage(textView, new Label(nom)); 
	}
	
	public void pestañanueva()//abrir
	{
		MiTextView textView = new MiTextView();
		textView.Visible = true;
		FileChooserDialog FCD= new FileChooserDialog("Abrir:",this,FileChooserAction.Open,"Cancel",ResponseType.Cancel,"Open",ResponseType.Accept);
		if (FCD.Run() == (int)ResponseType.Accept)
		{
			textView.Nombree=FCD.Filename;
			textView.Cargar();
			notebook.CurrentPage = notebook.AppendPage(textView,new Label(nombrearchivo(FCD.Filename))); 
		}
			FCD.Destroy();
	}
	
	string nombrearchivo(string ruta)
	{
		string [] resultado=ruta.Split('/');
		return resultado[resultado.Length-1];	
	}
	
	public void borrarpestaña()
	{		
		
		notebook.RemovePage(notebook.Page);
			
	}	
}

